When rendering graphics/frames for a real-time application, such as a video game, it is often hard to predict how long a particular part of the frame will take. If it is determined ahead of time that a frame is going to take a relatively long time to render (e.g., based on some timing threshold), steps may be taken to lower the burden on the GPU (graphics processing unit) by not rendering some non-critical parts of the frame. One traditional solution relies upon the CPU (central processing unit) timeline to time the rendering and take corrective action based on the timing. However, using the CPU timeline may be problematic because by the time that the CPU knows a timing issue exists, the work for the next frame may have already been submitted to the GPU and it may be very difficult or impossible to fix a preceding frame. Generally, traditional systems address this by always assuming a worst case scenario for frame processing, which results in under-utilization of the GPU much of the time.